package com.linkgie.galaxyframework.metadata;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 文本值类型的字段的状态判定标注
 * <p>
 * 
 * 用于将 {@link StateKey} 标注的字段值进行判断，生成状态标识；
 * 
 * <p>
 * 只用于非数组类型的字段；
 * 
 * @author huanghaiquan
 *
 */
@StatePredicate
@Target({ ElementType.FIELD })
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface TextState {

	/**
	 * 状态名称；
	 * 
	 * @return
	 */
	String state();

	/**
	 * 匹配值；
	 * <p>
	 * 当状态字段的值等于列表中的任意一项时，标记为 {@link #state()} 属性标记的状态；
	 * 
	 * @return
	 */
	String[] value();

}
